/*
 * @Author: your name
 * @Date: 2021-08-30 19:10:08
 * @LastEditTime: 2021-08-30 20:02:19
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \briup\Web课后练习成果\ES5\重写插入删除方法.js
 */
//pop:尾部删除,返回删除的数据
//数组:
var arr1 = [1, 2, 3, 4, 5];
Array.prototype.myPop = function() {
    //首先拿到被删除的数据
    var result = this[this.length - 1];
    //其次删除最后一位
    this.length--
        //返回数据
        return result;
}

//函数调用
console.log(arr1, arr1.myPop()); //[ 1, 2, 3, 4 ] 5


//push:尾部添加,返回新数组长度
var arr2 = ['true', 'false', 'null'];
Array.prototype.myPush = function() {
        //遍历传入的参数,取得数据
        for (var key in arguments) {
            var value = arguments[key];
            //创建房间,存放传入的数据
            this[this.length] = value;
        }
        //返回数组的长度
        return this.length;
    }
    //函数调用
console.log(arr2, arr2.myPush('hello')); //[ 'true', 'false', 'null', 'hello' ] 4

//shift:头部删除,返回删除的数据
var arr3 = ['name', 'age', 'id', 'world'];
Array.prototype.myShift = function() {
    //拿到即将被删除的数据
    var result = this[0];
    //其余房间的数据往前移,下标-1,先移前面
    for (var i = 1; i <= this.length - 1; i++) {
        this[i - 1] = this[i];
    }
    //删除最后一个空房间
    this.length--;
    //返回被删除的数据
    return result;
}

//函数调用
console.log(arr3, arr3.myShift()); //[ 'age', 'id', 'world' ] name

//unshift:头部添加,返回新数组的长度
var arr4 = [100, 200, 300, 400];
Array.prototype.myUnshift = function() {
    //遍历传入的参数,
    for (var key = arguments.length - 1; key >= 0; key--) {
        var newvalue = arguments[key];
        //长度length+1,创建小房间 数据向后移,先移最后一个,下标+1
        for (var i = this.length - 1; i >= 1; i--) {
            this[i] = this[i - 1];
        }
        //将参数加入到首位
        this[0] = newvalue;
    }
    //返回新数组的长度
    return this.length;
}

//函数调用
console.log(arr4, arr4.myUnshift('hello', 1, 2, )); //[ 'hello', 100, 200, 300 ] 4